package map;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

public class TreeMapUse {

//    User user1 = new User("a",1);
//    User user2 = new User("b",2);
//    User user3 = new User("c",3);
//    User user4 = new User("d",4);

    public static void main(String[] args) {
        User user1 = new User("a",1);
        User user2 = new User("b",2);
        User user3 = new User("c",3);
        User user4 = new User("d",4);

        HashMap<String ,Integer> map = new HashMap<>();

        TreeMap<String,Integer> treeMap = new TreeMap<>(
                (key1,key2) -> {
//                    map.get(key1)
//                    return key1.compareTo(key2);
                    System.out.println(map.get(key1).compareTo(map.get(key2)));
                    return map.get(key1).compareTo(map.get(key2));
                }
        );
        map.put("c",9);

        map.put("b",5);
        map.put("a",6);
        map.put("d",5);
        map.put("e",3);

        for(Map.Entry<String,Integer> entry : map.entrySet()){
            if (entry.getValue() >= 3) {
                treeMap.put(entry.getKey(), entry.getValue());
            }
        }
        System.out.println(map);
        System.out.println(treeMap);
    }


//    TreeMap<String, Integer> sortedMap = new TreeMap<>(
//            (key1, key2) -> {
//                int compare = Integer.compare(map.get(key2), map.get(key1));
//                return compare != 0 ? compare : key1.compareTo(key2);
//            }
//            );
//            for (Map.Entry<String, Integer> entry : map.entrySet()) {
//                if (entry.getValue() >= 3) {
//                    sortedMap.put(entry.getKey(), entry.getValue());
//                }
//            }
//
}
